import 'package:flutter/cupertino.dart';

/// 广告类型枚举
enum AdType {
  /// banner广告 横幅广告
  banner,
  /// 插页式激励广告
  rewardedInterstitial,
  /// 原生广告
  nativeAdvanced,
  /// 激励广告
  rewarded,
  /// 插页广告
  interstitial,
  /// 开屏广告
  appOpen,
}

/// 广告服务接口
abstract class AdService {
  /// 是否显示广告（VIP用户不显示）
  bool get allNotShow;

  /// 初始化广告服务
  Future<void> initialize();

/*  /// 获取横幅广告
  Future<void> getBannerAd( Function(Widget) onAdLoaded);
  /// 展示插页式激励广告
  Future<void> showRewardedInterstitialAd();

  /// 展示插页广告
  Future<void> showInterstitialAd();

  /// 展示原生广告
  Future<void> showNativeAdvancedAd(Function(Widget) onAdLoaded);

  /// 展示开屏广告
  Future<void> showAppOpenAd();

  /// 展示激励广告
  Future<void> showRewardedAd();*/

  /// 公共广告展示方法
  /// [adType] 广告类型
  /// [callback] 广告展示回调
  /// [onAdLoadedBanner] 横幅广告 或者 原生广告。加载回调
  /// [forceShow] 是否强制展示广告
  Future<void> showAd({
    required AdType adType,
    Function()? callback,
    Function(Widget)? onAdLoadedBanner,
    bool forceShow = false,
  });
}
